#!/usr/bin/python3
# -*- coding: utf8 -*-
#数据库数据检查脚本，使用o32中的数据检查这些库的数据是否正确，仅检查收盘价、最高、最低等

from libsw3 import *
import dbcfg

def 标准数据():
    o32=dbcfg.use("ro32@tz")
    data={}
    for 代码,名称,开盘,最新,最高,最低,量,价 in o32.execute(f"select vc_report_code,vc_stock_name,en_open_price,en_last_price, en_max_price, en_min_price, l_market_deal_amount, en_market_deal_balance from trade.tstockinfo where c_market_no='2' and c_stock_type='1'"):
        data[代码]={"名称":名称,"最新":最新}
    return data

def ms():
    '微软的sql server 检查,hq'
    db=dbcfg.use("iahq")
    bz=标准数据()
    总数,正确,错误=0,0,0
    for dm,z in bz.items():
        收盘价=db.jg1(f"select _close from hq.dbo.rtq_szse_quotation where code ='{dm}.SZ'")
        if 收盘价:
            总数=总数+1
            if abs(float(收盘价)-z["最新"])<0.0001:
                正确=正确+1
            else:
                错误=错误+1
                print(f"代码{dm} ia最新价{收盘价} o32最新价{z['最新']}")
    print(f"总数{总数},正确{正确},错误{错误}")

def ms2():
    '微软的sql server 检查,ia'
    db=dbcfg.use("ia_paladin")
    bz=标准数据()
    总数,正确,错误=0,0,0
    data={}
    for dm,z in bz.items():
        收盘价=db.jg1(f"select _close from ia.dbo.rtq_szse_quotation where code ='{dm}.SZ'")
        if 收盘价:
            总数=总数+1
            if abs(float(收盘价)-z["最新"])<0.0001:
                正确=正确+1
            else:
                print(f"代码{dm} ia最新价{收盘价} o32最新价{z['最新']}")
                错误=错误+1
    print(f"总数{总数},正确{正确},错误{错误}")

def sjbj(bz,data):  #数据比较
    for dm,z in bz.items():
        最新价=data[dm]["最新"]
        if 收盘价:
            总数=总数+1
            if 收盘价==z["最新"]:
                正确=正确+1
            else:
                错误=错误+1
    print(f"总数{总数},正确{正确},错误{错误}")
        

def oracle():
    'oracle数据检查'
    db=dbcfg.use("jyjk@ta")
    bz=标准数据()
    总数,正确,错误=0,0,0
    for dm,z in bz.items():
        收盘价=db.jg1(f"select zxj from sshq where dm ='{dm}' and sc=0")
        if 收盘价:
            总数=总数+1
            if 收盘价==z["最新"]:
                正确=正确+1
            else:
                错误=错误+1
    print(f"总数{总数},正确{正确},错误{错误}")

sw3.start(globals(),"行情数据库检查脚本")
